#ifndef CONTROLMODULESDKINTERFACE_H
#define CONTROLMODULESDKINTERFACE_H

#include "SDKInterface.h"
#include <QVariant>
#include <QWidget>
#include <QDialog>


class ControlModuleSDKInterface : public SDKInterface {
    Q_OBJECT
public:
    explicit ControlModuleSDKInterface(QObject *parent = nullptr):SDKInterface(parent)
    {
         m_DeviceType=DeviceType::ControlModule;
    }
    virtual ~ControlModuleSDKInterface() = default;

    /**
     * @brief 获取快速参数设置Widget
     * @param deviceId 设备ID
     * @param parent 父窗口指针
     * @return 快速参数设置Widget指针，失败返回nullptr
     */
    virtual QWidget* getQuickParametersWidget(const QVariant& deviceId, QWidget* parent = nullptr) = 0;

    /**
     * @brief 获取参数设置对话框
     * @param deviceId 设备ID
     * @param parent 父窗口指针
     * @return 参数设置对话框指针，失败返回nullptr
     */
    virtual QDialog* getParametersDialog(const QVariant& deviceId, QWidget* parent = nullptr) = 0;

    /**
     * @brief 获取预设参数设置对话框
     * @param deviceId 设备ID
     * @param parent 父窗口指针
     * @return 预设参数设置对话框指针，失败返回nullptr
     */
    virtual QDialog* getPresetParametersDialog(QWidget* parent = nullptr) = 0;



signals:
    // 控制模块事件信号
    void moduleEvent(const QVariant& deviceId, const QString& eventName, const QVariantMap& eventData);
};

#endif // CONTROLMODULESDKINTERFACE_H
